﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 单一职责原则
{
    /*
 内部变化：   如果telphone内部的方法发生变化 就需要修改  不符合单一职责
外部变化：需要添加新的方法，也需要修改telphone 这是应该的，如果同时内部发生变化就不符合单一职责原则
     */
    public class Telphone
    {
        public void Dial(string phoneNum)
        {
            Console.WriteLine($"给谁{phoneNum}打电话");
        }
        public void HangUp(string phoneNum)
        {
            Console.WriteLine($"挂断{phoneNum}打电话");
        }
        public void SendMessage(string msg)
        {
            Console.WriteLine($"发送{msg}");
        }
        public void ReciveMessage(string msg)
        {
            Console.WriteLine($"接收{msg}");
        }

    }

    public class Telphone2
    {
        private IHangUp _hangUp;
        private IMessage _message;
        private IDial _dial;
        public Telphone2()
        {
            _hangUp = new HangUp();
            _message= new Message();
            _dial= new Dial(); 
        }
        public void Output()
        {
            _dial.DialPhoneNum("13067707790");
            _hangUp.HangUpPhoneNum("13067707790");
            _message.SendMessage("mhg");
            _message.ReciveMessage("mhg");
        }
    }
}
